/**
 *
 */
package yl.hs.bmipfull.daos.system;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import yl.hs.bmipfull.daos.BaseDao;
import yl.hs.bmipfull.pojo.system.UserInfoEntity;

import java.util.List;
import java.util.Map;

/**
 * @author 谢景广 <br/>
 * 用户信息数据存储操作接口
 */
@Repository
public interface IUserInfoDao extends BaseDao<UserInfoEntity> {

    /**
     * 根据用户账户名查找用户信息
     * @param account 账户名
     * @return 用户信息
     */
    UserInfoEntity findByAccount(String account);

    List<UserInfoEntity> queryAlByOrganizationCode(String organizationCode);

    List<UserInfoEntity> queryByCondition(String condition);

    Integer queryCountByCondition(@Param("queryParam")Map<String, Object> queryParam);

    List<UserInfoEntity> queryListByCondition(@Param("queryParam") Map<String, Object> queryParam);

    /**
     * 根据用户编号删除用户信息
     * @param sn 用户编号数组
     * @param code
     * @return
     */
    Integer updateUserStateToDeleteByUserSN(String[] sn, short code);

    /**
     * 根据组织单位编号获取用户信息
     * @param snArray 组织单位编号
     * @return
     */
    List<UserInfoEntity> queryUsersByUnitSN(String[] snArray);

    /**
     * 根据用户编号，查询用户名
     * @param sn 用户编号
     * @return 用户名
     */
    String findUserNameBySn(String sn);

    /**
     * 根据用户编号集合获取用户信息
     * @param snList
     * @return
     */
    List<UserInfoEntity> queryByUserSNList(List<String> snList);


}
